System and method for assigning information categories to multicast groups

ABSTRACT

A system and method for determining an efficient assignment of information categories to multicast addresses is described. In one embodiment, the assignment takes into account the overlapping information needs of the subscriber nodes and the network bandwidth that will be consumed in the dissemination of each information category based on its size and the frequency of dissemination. In another embodiment, the assignment takes into consideration the additional constraint of a quality of service network having different prioritizations associated with the information categories.

This application claims the benefit of U.S. Provisional Application61/228,263, filed Jul. 24, 2009, incorporated herein in its entirety.

FIELD OF THE INVENTION

The present invention relates generally to the field of networking, andmore particularly to methods and systems for disseminating informationusing multicast services.

BACKGROUND

Network-centric tactical environments rely heavily on the timelydissemination of critical information related to sensors, situationalawareness, command, and control to soldiers, planners, and otherreceivers in order to execute a successful mission. Typically, theseenvironments use a communications network including hundreds ofplatforms, sensors, decision nodes, and computers communicating witheach other to exchange information to support collaborative decisionmaking in a real-time, dynamically changing, and critical situation.

The communications network used in these environments often disseminateinformation using publish-subscribe (“pub-sub”) communication paradigmwith Internet Protocol (“IP”) multicast services as the transportmechanism. In pub-sub, the sender or publisher sends messages withoutknowing the existence or identity of the receivers or subscribers. Thesemessages are received only by those that have subscribed to theinformation contained in the messages. A subscriber can receiveinformation related to a particular content regardless of the identityof the publisher. This paradigm is beneficial in environments where thecommunicating parties are frequently changing, such as in a tacticalnetwork.

IP multicasting is a networking technology that sends information as apacket to a group of destinations simultaneously over a link once. Thenodes in the network replicate the packet to reach the multipledestinations as needed when downstream receivers are reached overmultiple links. A multicast group is a set of receiver nodes that electto receive information or packets sent to the group. A multicast addressis used by a source node to send packets to each of the receiver nodesassociated with the multicast group and by the receiver nodes to receivethe packets.

It is often the case in network-centric tactical environments, that thenumber of multicast addresses and groups that can be used for pub-subcommunications is limited. In such eases, it is necessary to disseminateinformation in an efficient manner.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described in the Detailed Descriptionbelow. This Summary is not intended to identify essential features ofthe invention or claimed subject matter, nor is it intended to be usedin determining the scope of the claimed subject matter.

The present invention pertains to a technology that determines anefficient assignment of information categories to multicast addresses.In an embodiment, the assignment is employed in a tactical networkutilizing a publish-subscribe communications paradigm with InternetProtocol (“IP”) multicast services as the transport mechanism. Theassignment is calculated considering the overlapping information needsof the subscribers and the network bandwidth that will be consumed inthe dissemination of each information category based on its size and thefrequency of dissemination.

In an embodiment, the tactical network is represented by the following:a set of k subscribers, S={s₁, . . . ,s_(k;)}; a set of n multicastaddresses, A={a₁, . . . ,a_(n)}; a set of m information categories,C={c₁, . . . ,c_(m)}; a bandwidth factor, B_(m), for each category, thatis a weighted factor representing the size of information category m andits frequency of dissemination; and a function, N(S,C), which denotesthe subscribers' needs for the information categories. The goal is tofind a near optimal assignment solution, M(C,A), that minimizes wastagein the network. Wastage is represented by a wastage penalty, W that is afunction of the unwanted categories received by the subscribers and thebandwidth factor of each of these categories.

In another embodiment, the assignment of the information categories tomulticast addresses takes into consideration the additional constraintof a quality of service (QoS) network having different prioritizationsassociated with the information categories. In this embodiment, thereare two priority levels. The information categories, C, multicastaddresses, A, subscribers, S, and the subscribers' information needsfunction, N, are separated into two classes, where each class representsa different priority level. The assignments are made using subscribers,information categories, and multicast addresses from the same priority.This enables the dissemination of messages to high priority users with adifferent QoS priority by the network.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter disclosed is illustrated by way of example, and notby way of limitation, in the figures of the accompanying drawings inwhich the like reference numerals refer to similar elements and inwhich:

FIG. 1 illustrates a tactical network in accordance with a preferredembodiment;

FIG. 2 illustrates a tactical network having planner and executor nodesin accordance with a preferred embodiment;

FIG. 3 is a flow chart illustrating the multicast assignment process inaccordance with a preferred embodiment;

FIG. 4 is a flow chart illustrating additional steps used in themulticast assignment process shown in FIG. 3;

FIG. 5 is a flow chart illustrating the multicast assignment process inaccordance with another preferred embodiment; and

FIG. 6 is a flow chart illustrating additional steps used in themulticast assignment process shown in FIG. 5.

DETAILED DESCRIPTION

FIG. 1 shows an embodiment of a network-centric tactical environment ornetwork 100 including a number of nodes 102, one or more communicationnetworks 104, and one or more links 106 used to connect a node 102 to acommunication network 104 in order to facilitate communication betweenthe nodes 102. The tactical network 100 may be used by one or moremilitary units for communicating data such as voice data, positiontelemetry, sensor data, and real-time video. Nodes 102 in the tacticalnetwork can be tactical radios, transmitters, satellites, receivers,workstations, computers, servers, wireless handheld devices, and/orother computing devices. The links 106 may be wired and/or wirelessconnections that facilitate the transmission of data between the nodes102 and the communication networks 104.

A communication network 104 can be any type of network that facilitatesthe transmission of data between the nodes 102. There may be varioustypes of communication networks 104 within the tactical network 100 andeach may be operating using a different communication protocol within adifferent network architecture. For instance, one communication network104 may utilize an Ethernet local area network along with radio links tosatellites and field units that operate at different throughputs andlatencies. Tactical radios may communicate using both satellitecommunications and a direct radio frequency link. A high frequencynetwork may be employed for long range transmissions. In addition, thereare a number of routers, gateways, and other networking components (notshown) that are part of the communications network 104 and are used tofacilitate the transmission of data between the various nodes 102.

In a preferred embodiment, the tactical network 100 utilizes a pub-subcommunication paradigm with IP multicast services as the transportmechanism. In the pub-sub communications paradigm, the sender orpublisher sends messages without knowing the existence or identity ofthe receivers or subscribers. A subscriber can receive informationrelated to a particular content regardless of the identity of thepublisher.

In a topic-based pub-sub system, information is disseminated ininformation categories. A receiver subscribes to a particularinformation category and they receive all the messages published to eachof the information categories that they subscribed to. All subscribersto an information category receive all the same messages. The publisherdefines the information category and generates the messages for thattopic.

Pub-sub communications use IP multicast by mapping each informationcategory to an IP multicast address. Many categories may be mapped to asingle multicast address. Both senders and receivers are aware of thesemappings. A receiver interested in a category joins the correspondingmulticast group. A sender publishes information belonging to a categoryusing the corresponding multicast address as the destination address.

Preferably, the tactical network 100 uses multicasting to implement thepub-sub communication paradigm. Each information category is associatedwith a multicast group having a specific multicast address. Themulticast group consists of those users or nodes 102 in the tacticalnetwork 100 subscribed to a particular information category. Eachmulticast group is associated with a specific multicast address andpreferably, the tactical network 100 uses multicast addresses inaccordance with the Internet Protocol version 6 (“IPv6”) addressingscheme.

Referring to FIG. 1, there is shown a multicast group 108 consisting ofsubscriber nodes 102 associated with information category c_(m). Apublisher generates a message associated with information category c_(m)which is disseminated to the multicast group 108 through a number oflinks, routers, and networks. Each node 102 in the network 100 thatreceives the message replicates the message and forwards it to the nextnode 102 in the path to the destination receiver 102 (shown in FIG. 1through the arrow-ended links).

In networks using multicast services, there needs to be a mechanism thatdetermines the assignment of information categories to multicast groups.Referring to FIG. 2, the tactical network 100 utilizes a planner 112resident in a single node to assign each information category to aparticular multicast address. The planner node 112 disseminates themulticast assignments for each of the information categories to executornodes 110 belonging to the multicast group associated with theinformation category. An executor node 110 subscribes the users orsubscribers associated with the executor node 110 to one or moremulticast groups based on the multicast group assignments received fromthe planner 112 and is responsible for receiving the subscribedinformation categories.

The planner node 112 has, at a minimum, a network interface 120 forfacilitating network communication, a memory 114, and a processor or CPU122. The memory 114 can be a computer readable medium that can storeexecutable procedures, applications, and data. It can be any type ofmemory device (e.g., random access memory, read-only memory, etc.),magnetic storage, volatile storage, non-volatile storage, opticalstorage, DVD, CD, and the like. The memory 114 can also include one ormore external storage devices or remotely located storage devices. Thememory 114 can contain instructions and data as follows:

-   -   an operating system 130;    -   a multicast assignment procedure 132;    -   a QoS multicast assignment procedure 140;    -   various data structures used in the multicast assignment        procedures 134; and    -   various other applications and data 136.

Each executor node 110 has, at a minimum, a network interface 120 forfacilitating network communication, a memory 116, and a processor or CPU122. The memory 116 can be a computer readable medium that can storeexecutable procedures, applications, and data. It can be any type ofmemory device (e.g., random access memory, read-only memory, etc.),magnetic storage, volatile storage, non-volatile storage, opticalstorage, DVD, CD, and the like. The memory 116 can also include one ormore external storage devices or remotely located storage devices. Thememory can contain instructions and data as follows:

-   -   an operating system 130;    -   mapping information related to assignments of information        categories to multicast addresses 138;    -   subscriber node information 142; and    -   various other applications and data 144.

Multicasting uses keys (not shown) to ensure the security of thetransmission. For each transmission or publication, a session key istransmitted along with the content and is encrypted with a public key ofthe subscriber. For security reasons, session keys are frequentlychanged which causes a problem of ensuring that the subscribers to amulticast group possess the keys needed to decrypt the transmission. Themulticast key problem is further exacerbated by the dynamics of amulticast group where members can join and leave a group frequentlythereby requiring the distribution of new group keys. The networktraffic used in updating the keys frequently increases the network'sbandwidth and reduces the efficiency of the network for use in thetransmission of mission critical information. One way of simplifyingthis key management problem is by minimizing the number of multicastgroups that are used in the tactical network.

Another problem with the use of multicasting in a tactical network isthat a subscriber may be limited to the number of multicast groups thatit can subscribe to yet still needs to obtain enough information toperform its mission. For example, tactical radios are limited to thenumber of multicast groups that they can subscribe to for securityreasons. This limitation is done to reduce the amount of highlysensitive data that is stored in the radio.

Additionally, tactical networks are typically bandwidth constrained. Itis often the case that there is more data to be transmitted thanavailable bandwidth at any given point in time. This can be attributableto the limitations imposed on the network architecture and/or the amountof communications transmitted at any given point in time.

Furthermore, since the number of multicast addresses and groups that canbe used for pub-sub communications is limited, multiple informationcategories are often mapped to a common multicast address. In suchcases, all members of the multicast group receive all the messagesassociated with these information categories irrespective of subscribingto the information category. Accordingly, a subscriber may join amulticast group to receive messages of one particular informationcategory and instead receive messages from several unwanted informationcategories.

For these reasons, it is beneficial to minimize the dissemination ofunwanted information in order to decrease the unnecessary use or wasteof network resources and to reduce the information load on the receivingnodes. This can be achieved by assigning the information categories tomulticast groups taking into consideration the overlapping informationneeds of the subscribers and the consumption of the network bandwidththat is consumed in the dissemination of the categories based on theirsize and frequency of publication. Attention now turns to a descriptionof the manner in which this assignment is performed.

The problem can be described mathematically as follows. Consider a set Sof k subscribers S={s₁, . . . ,s_(k)}, a set C of m informationcategories C={c₁, . . . , c_(m)}, and a set A of n multicast addressesA={a₁, . . . , a_(n)}. The information needs of each subscriber isexpressed by a boolean function, N (s, c), where N (s, c)=1 indicatesthat subscriber s needs information category c and where N (s, c)=0indicates that subscriber s is not interested in information category c.

Given these inputs, the goal is to find the best assignment functionM(C, A) that assigns a multicast address from A to each informationcategory in C. The function M(c, a)=1 if and only if category c isassigned address a (this means that a publisher that publishesinformation belonging to information category c will use multicastaddress a for dissemination). It is generally expected that the numberof information categories will be greater than the number of availablemulticast addresses and the mapping function will result in assigningthe same multicast address to several information categories.

Since a multicast address may be used to disseminate several informationcategories, a subscriber desiring information belonging to one of thesecategories ends up receiving all categories that are assigned the sameaddress, including categories that are not subscribed to. This resultsin unnecessary information being transported in the network using upnetwork resources. This wastage increases with the bandwidth consumed byunnecessary information. Accordingly, it is an objective of the addressassignment function, M, that the categories are assigned in an efficientmanner so that the network resources that are consumed in deliveringunwanted information to subscribers are minimized. As such, additionalconsideration needs to be given to the varying frequency of publicationsince different categories publish at different rates and to the variousdata sizes of the information categories.

The objective function for the multicast assignment is the minimizationof wastage in the network. The wastage for the network is the sum ofwastages for each category. The wastage attributed to each category is afunction of the bandwidth used in the dissemination of information tosubscribers that are not subscribed to the category. The wastage isdefined as follows:

${W = {\sum\limits_{\forall{m \in C}}{\square\left( {B_{m}*{\sum\limits_{\forall{s \in S}}{\square{M_{2}\left( {s,m} \right)}}}} \right)}}},$

where B_(m) is the bandwidth factor and M₂(s,m) expresses the wastagedelivery relationship between subscribers and categories (M₂(s,m)=1 ifsubscriber s has not subscribed to m but receives m as a result of theaddress assignment; that is M₂(s,m)=1 if and only if for some a and c₁,N(s,m)=0 and M(m,a)=1, and N(s,c₁)=1 and M(c₁,a)=1).

In a preferred embodiment, the solution of the assignment problem usessimulated annealing. However, the technology described herein is notconstrained to simulated annealing and other search and optimizationtechniques can be used, such as without limitation, linear programming,adaptive simulated annealing, combinatorial optimization, and the like,and any combination thereof.

Simulated annealing is a technique often used to solve largecombinatorial problems by searching through the problem space in amanner that reduces a defined objective function. An initial solution isperturbed repeatedly in small steps and the new solution is accepted ornot based on the constraints. All steps that result in a better solutionor equally good solution are accepted. Steps that result in a worsesolution are also accepted based on a probability that they will lead tobetter solutions.

In an analogy to the metallurgical annealing method, where a metal iscooled gradually from a high temperature state in order to achieve itslowest energy state, this approach starts from a high temperature andreduces the temperature in stages according to a cooling rate until thedesired low temperature is reached. At each temperature stage, NumTrialssolutions are generated and evaluated. At each step i, the objectivefunction P_(i) is evaluated. Steps that result in a worse solution areaccepted based on a probability using the inequality

r<e^(−ΔP/T),

where

-   -   r is a random number between 0 and 1,    -   ΔP=(P_(i)−P_(i-1)), and    -   T is the temperature at that stage.

The inequality results in the method accepting worse solutions with ahigher probability at high temperatures, thus preventing the method fromconverging to a local minimum. The process is combined with specificobjective functions and constraints to receive an approximately optimalsolution.

The simulated annealing process starts with an initial random assignmentof categories to addresses and then repeatedly generates newassignments, M′(c,a), that are slightly different from the previous orcurrent assignment, M(c,a). Two basic moves are used to generate newassignments. In the first move, two random categories are selected andtheir assigned addresses are swapped. This move maintains the number ofcategories assigned to each multicast address and only mixes thecategories assigned to them. It is useful in determining the categoriesthat can be grouped together to reduce wastage. In the second move, onerandom category is selected and it is assigned a randomly selectedaddress. This move not only changes the assignment of categories tomulticast addresses but also changes the number of categories assignedto a multicast address. It is useful in cases where a category's mix ofsubscribers and bandwidth needs are such that it is best to assign thecategory to its own multicast address and not be grouped with others.

In either case, the wastage or penalty for the new assignments orsolutions, W, is computed in order to determine which solution ispreferred. If the new solution, M′(C,A), is better than the currentsolution, M(C,A), or the inequality in the simulated annealing algorithmis met, the new solution is accepted as the current solution. Otherwise,the new solution is rejected and the previous solution remains. Thisprocess is repeated until the final temperature stage is completed.

Turning now to FIG. 3, there is shown the steps used in the multicastassignment procedure 132. Initially, in step 300, inputs to themulticast assignment procedure 132 are described using certain datastructures which are enumerated and initialized as follows:

-   -   S is a set of k subscribers, S={s₁, . . . , s_(k)};    -   C is a set of in information categories, C={c₁, . . . , c_(m)};    -   B is a set of m bandwidth factors, B={b₁, . . . , b_(m)}, where        b_(m) represents the bandwidth factor associated with        category m. The bandwidth factors are a predetermined weight        that is assigned initially to each category m. Each bandwidth        factor is a function of the frequency and message of the        information disseminated in each category normalized to a        particular category. For example, in a tactical network, it can        be normalized to the information category associated with the        highest echelon in the network, such as a brigade. The bandwidth        factor of the brigade level information category is set to 1        while all others are stated in relation to the brigade level        category;    -   A is a set of n multicast addresses, A={a₁, . . . ,a_(n)}; and    -   N(s,c) is a list representing the subscriber's needs, where        N(s,c)=1 if subscribers needs information category c, and        N(s,c)=0 if subscriber s does not need information category c.

In addition, the variables used in the assignment solution iteration aredescribed and initialized as follows:

-   -   T_(init), the initial temperature used in the simulated        annealing process (r<e^(−ΔP/T)). This value is set so that the        simulated annealing process picks 50% of the solutions that are        worse than the previous solution. The initial value is set        between 10 and 30;    -   T_(final) the final temperature used in the simulated annealing        process. It is set so that only 0.1% of the worse solutions is        picked by the process and is initialized between 0.1 and 0.5;    -   T, is the temperature variable used at the current temperature        stage in the simulated annealing process, and is set initially        to T_(init);    -   n, the number of iterations and is initialized to zero, n=0;    -   NumTrials is a value indicating the number of iterations that        the simulated annealing process iterates through at each        temperature stage. This value is initialized based on the        dimension of the problem and typically set on average to two to        four times the size of the problem. In this case, the size of        the problem is based on the number of information categories        that need to be assigned a multicast address. For example, if        there are between 100-200 such categories, then NumTrials would        be set between 200-400 iterations; and    -   α, the cooling rate used in the simulated annealing process.        Preferably, it is initialized to a value between 0.8 and 0.99. A        higher value for the cooling rate produces a more optimal        solution yet takes longer to compute. A lower value within that        range produces a less optimal solution that can be computed        quickly.

Next, the procedure 132 generates an initial solution, M(C,A,), byrandomly assigning information categories to multicast addresses. Foreach category c_(i) in C, a random address a_(j) from A is selected andc_(i) is assigned to a_(j) (i.e., set M(c_(i),a_(j))=1). This isrepeated for all information categories of C (step 302). In addition,the wastage penalty for this initial solution is computed. In order todo this, the function M₂(S, C) is computed as follows: M₂(s,c)=1 ifsubscribers has not subscribed to c but receives c as a result of theaddress assignment; that is M₂(s,c)=1 if and only if for some a and c₁,N(s,c)=0 and M(c,a)=1, and N(S,c₁)=1 and M(C₁,a)=1. Then the wastagepenalty, W, is computed as follows:

$W = {\sum\limits_{\forall{m \in C}}{\square\left( {B_{m}*{\sum\limits_{\forall{s \in S}}{\square{M_{2}\left( {s,m} \right)}}}} \right)}}$

(step 302).

Now that an initial assignment and penalty have been computed, theprocedure 132 utilizes a mathematical technique to determine a nearoptimal assignment solution, M(C,A) (step 304). Referring to FIG. 4,there is shown the steps used to determine the near optimal assignmentsolution. The procedure 132 produces a new assignment, compares it to anexisting assignment, determines which assignment is acceptable, and theniterates this process until the wastage penalty for the currentassignment meets a predetermined threshold.

Certain data structures are used and they are described below:

-   -   M(C,A) is the assignment solution, where M(c, a)=1 indicates        that a publisher publishing information belonging to category c        uses the multicast address a for dissemination and where M(c,        a)=0 indicates that a publisher publishing information belonging        to category c does not use the multicast address a;    -   M′(C,A) is a candidate solution that is generated and compared        against the current solution, M(C,A);    -   M₂(S, C) expresses the wastage delivery relationship between        subscribers and categories. M₂(s,c)=1 if subscriber s has not        subscribed to c but receives c as a result of the address        assignment. That is M₂(s,c)=1 if and only if for some a and c₁,        N(s,c)=0 and M(c,a)=1 and N(s,c₁)=1 and M(c₁,a)=1.    -   M₃(S,A) expresses the relationship between subscribers and        addresses, where M₃(s_(k),a_(j))=1, if and only is there exists        at least one category c_(j) for which N(s_(k), c_(j))=1 and        M(c_(j),a_(j))=1;    -   B_(m) represents the bandwidth factor associated with category        m;    -   W is the wastage penalty,

$W = {\sum\limits_{\forall{m \in C}}{{\square\left( {B_{m}*{\sum\limits_{\forall{s \in S}}{\square{M_{2}\left( {s,m} \right)}}}} \right)}.}}$

The procedure 132 starts off with randomly selecting the type of movethat will modify the current solution (step 402). There are two possibleways in which the solution can be modified. In the first move (step404), two random categories are selected and their assigned addressesare swapped. For example, random categories c_(i) and c_(j) are selectedand assigned to addresses, a_(l) and a_(m) resulting in M′(c_(i),a_(l))=0, M′(c_(j), a_(m))=0, M′(c_(i), a_(m))=1; and M′(c_(j),a_(l))=1. In the second move (step 406), one random category is selectedand it is assigned a randomly selected address. For example, selectrandom category, c_(m), assigned to address a_(n), and random addressa_(p), then M′(c_(m), a_(n))=0 and M′(c_(m), a_(p))=1. The procedurerandomly selects one of these moves, and based on the selection updatesthe new solution, M′(c,a) accordingly.

Next, in step 408, the wastage penalty is computed for the new solutionis calculated as follows:

$W = {\sum\limits_{\forall{m \in C}}{{\square\left( {B_{m}*{\sum\limits_{\forall{s \in S}}{\square{M_{2}\left( {s,m} \right)}}}} \right)}.}}$

In addition, M₃(S,A) is computed from M(C,A). For each subscriber s_(k)and each address a_(j), M₃(S,A)=1, if and only if there exists at leastone category c_(i) for which N(s_(k),c_(i))=1 and M(c_(i), a_(j))=1. Inother words, M₃(s_(k), a_(j))=1 subscriber s_(k) needs category c_(i)that is assigned to a_(j).

In step 410, a determination is made to accept or reject the newsolution based on the difference in the wastage penalty between the twosolutions. The new solution is accepted if r<e^(−ΔP/T), where r is arandom number between 0 and 1, ΔP=penalty of M′(C,A)−penalty of M(C,A),and T is the current temperature. If the new solution satisfies thiscondition (step 412), the new solution is kept as the current solution,M(C, A)=M′(C,A), otherwise (step 414), the current solution, M(C,A), isleft unaltered.

Next, in step 416, a determination is made as to whether additionalprocessing is needed. At each temperature, T, there is a set number ofiterations that are performed before the temperature is changed. In thiscase, NumTrials denotes the number of iterations made at the currenttemperature T. If n<NumTrials, the procedure 132 takes on anotheriteration and flow continues back to step 402. Otherwise, thetemperature, T, is adjusted by the cooling factor T=T*α. If the currenttemperature, T, exceeds the final temperature, T_(final), the procedure132 makes another iteration of assignments and the flow proceeds back tostep 402. Otherwise, the procedure stops since a near optimal solutionhas been determined.

Referring back to FIG. 3, once the assignment solution has beendetermined, M(C,A) and M₃(S,A) are disseminated in step 306. The entiresolution is represented by M(C,A) and M₃(S,A), where

-   -   M(c, a)=1 indicates that a publisher publishing information        belonging to category c uses the multicast address a for        dissemination,    -   M(c, a)=0 indicates that a publisher publishing information        belonging to category c does not use the multicast address a for        dissemination, and    -   M₃(S,A) indicates the subscription of subscriber s to multicast        address a as a result of the assignment solution.

The planner node 112, in step 306, disseminates these assignments to theappropriate executor nodes 110. The assignments of the multicast addressto categories, M(C,A), is disseminated to the executor nodes 110associated with the publishers of the information categories and theassignment of the subscribers to multicast addresses, M₃(S,A), isdisseminated to the executor nodes 110 associated with the subscribers.

The preceding description described an embodiment where the informationneeds of each of the subscribers were assumed to be of the samepriority. However, quite often, in tactical networks, there is anoperational need to deliver information with varying quality of service(“QoS”) to different subscribers. For example, when a soldier in aplatoon detects a mine, this information should be disseminated to othersoldiers in the battlefront with higher criticality compared to acommander in the rear. Current day multicast schemes do not supportinformation delivery with varying QoS using a single multicast address.Thus, the operational need can be realized only by assigning multiplemulticast addresses to the same topic or event, one for each QoS class,and publishing the same topic on each assigned multicast address. Tosupport this capability, the assignment scheme needs to be extended toconsider each topic with varying degrees of QoS as multiple categoriesand generate address assignments satisfying the constraint that each ofthese categories should be mapped to a different multicast address.Attention now turns to another embodiment of the multicast assignmentprocedure that takes into consideration QoS related priorities andconstraints.

In this embodiment, an additional constraint is added to the assignmentsthat are generated. The problem requires that categories that needdifferent priorities of delivery be assigned to multiple multicastaddresses, one for each priority level, making sure that the subscribersto the category only receive at the desired priority. In order tosimplify the assignment, a stricter constraint is used. Categories aresplit such that the high priority subscribers are in a separate group.The assignment is further constrained so that all categories assigned toa particular multicast address are of the same priority. Thus, allinformation categories published to a single multicast address are ofthe same priority.

The framework for implementing QoS in a tactical network can be achievedby several technologies. Typically, these technologies are employed atdifferent levels in the network structure involving protocols andapplications in the network nodes and routers, operating system supportfor scheduling, resource management, and real-time support, and thelike. The technology described herein is not constrained to anyparticular QoS implementation and any can be used in the tacticalnetwork. Attention now turns to the manner in which the assignments aremade with the additional QoS constraint.

Turning now to FIG. 5, there is shown the steps used in the QoSmulticast assignment procedure 140. The steps used in this embodimentare similar to those described previously with respect to FIGS. 3 and 4and differ with respect to the prioritization of the informationcategories, multicast addresses, and subscriber needs list. Informationcategory, C, is separated into two groups, with one group having ahigher priority than the other information category group. Thesubscriber needs list, N, and multicast addresses, A, are also separatedinto two groups based on priorities. It should be noted that althoughthe description shown herein is with respect to two priority levels, thetechnology described herein can be easily adapted to include any numberof prioritization levels or classes.

Initially, in step 500, the inputs to procedure 140 are enumerated andinitialized as follows:

-   -   S is a set of k subscribers, S={s₁, . . . , s_(k)};    -   C′ is a set of m′ (m<m′) information categories, C′={c₁, . . . ,        c_(m′)}, having a high priority, and C is a set of m information        categories, C={c₁, . . . , c_(m)} having a normal priority that        is lower than the information categories in C′.    -   B is a set of m+m′ bandwidth factors, B={b₁, . . . b_(m),        b_(,+1), . . . b_(m′)}, where b_(i) represents the bandwidth        factor associated with category i. The bandwidth factors are a        predetermined weight that is assigned initially to each        category;    -   A is a set of n multicast addresses. A is separated into two        groups: A={a₁, . . . ,a_(l)} having a normal priority and        A′={a_(l+1), . . . , a_(n)} having a high priority; and    -   N(S,C) is a subscriber needs list where N(s, c_(m))=1 for all s        that are interested in c_(m) that do not need high priority        treatment, and N(s, c_(m)′)=1 for all s that are interested in        c_(m′) that do need high priority treatment.

The procedure 140 designates an initial subset of the multicastaddresses as being high priority addresses while the others remain witha normal priority. This is accomplished by partitioning the addressesinto two sets, A and A′, where A′ is a set of high priority addresses.The categories that have subscribers that need priority treatment aresplit into two categories, such that the normal priority subscriberssubscribe to category c_(m) whereas the high priority subscriberssubscribe to category c_(m)′. The initialization of the variables usedin the assignment solution iteration, T_(init), T_(final), n, NumTrials,and α is the same as described above with respect to step 300 in FIG. 3.

In step 502, the procedure 140 generates an initial assignment solutionand its associated wastage penalty. The initial solution is composed ofinitial assignments of information categories to multicast addresseswith the additional constraint that the address that a category ismapped to has the same priority level. Preferably this is done randomly.Information categories within the high priority information category areassigned to multicast addresses having a high priority and informationcategories within a normal priority level are assigned to a multicastaddress having a normal or lower priority. The procedure 140 continueswith determining the wastage penalty for the initial assignment solutionin the same manner as described above with respect to step 302 (step502).

Next, the procedure 140 determines a near optimal assignment solution asshown in FIG. 6. The process 504 is similar to the process describedabove with respect to FIGS. 3 and 4 and differs in that assignments areconstrained to map information categories to addresses that are in thesame priority level.

The process 504 starts off with randomly selecting the type of move thatwill modify the current solution (step 602). There are two possible waysin which the solution can be modified. In the first move (step 604), tworandom categories are selected within the same priority level and theirassigned addresses within the same priority level are swapped. In thesecond move (step 606), one random category is selected within the samepriority level and it is assigned a randomly selected address in thesame priority level.

Next, in step 608, the wastage penalty for the new solution iscalculated as follows:

$W = {\sum\limits_{\forall{z \in C}}{{\square\left( {B_{z}*{\sum\limits_{\forall{s \in S}}{\square{M_{2}\left( {s,z} \right)}}}} \right)}.}}$

In addition, M₃(S,A) is computed from M(C,A). For each subscriber s_(k)and each address a_(j), M₃(S,A)=1, if and only if there exists at leastone category c_(i) for which N(s_(k), c_(i))=1 and M(c_(i), a_(j))=1. Inother words, M₃(s_(k), a_(j))=1 subscriber s_(k) needs category c_(i)that is assigned to a_(j).

In step 610, a determination is made to accept or reject the newsolution based on the difference in the wastage penalty between the twosolutions. The new solution is accepted if r<e^(−ΔP/T), where r is arandom number between 0 and 1, ΔP=penalty of M′(C,A)−penalty of M(C,A),and T is the current temperature. If the new solution satisfies thiscondition (step 612), the new solution is kept as the current solution,M(C, A)=M′(C,A), otherwise (step 614), the current solution, M(C,A), isleft unaltered.

Then, in step 616, a determination is made as to whether additionalprocessing is needed. At each temperature, T, there is a set number ofiterations that are performed before the temperature is changed. In thiscase, NumTrials denotes the number of iterations made at the currenttemperature T. If n<NumTrials, the procedure 504 takes on anotheriteration and flow continues back to step 602. Otherwise, thetemperature, T, is adjusted by the cooling factor T=T*a. If the currenttemperature, T, exceeds the final temperature, T_(final), the procedure504 makes another iteration of assignments and the flow proceeds back tostep 602. Otherwise, the procedure 140 stops since a near optimalsolution has been determined.

Referring back to FIG. 5, the entire solution is disseminated in step506 in a similar manner as described above with respect to FIG. 3. Theplanner node 112, in step 506, disseminates these assignments to theappropriate executor nodes 110. The assignments of the multicast addressto categories, M(C,A), is disseminated to the executor nodes 110associated with the publishers of the information categories and theassignment of the subscribers to multicast addresses, M₃(S,A), isdisseminated to the executor nodes 110 associated with the subscribers.

The foregoing description, for purposes of explanation, has beendescribed with reference to specific embodiments. However, theillustrative teachings above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

The technology described herein can be applied to other applicationsemploying pub-sub over IP multicast, such as without limitation,streaming media, Internet television applications, and the like.

In addition, one skilled in the art can adapt the technology describedherein to accommodate dynamic replanning. Dynamic replanning is oftenrequired in tactical networks. In the context of pub-sub communications,replanning may require subscription changes to information categories toaccommodate retasking of war fighters during mission execution. A commonreplanning scenario is unit reorganization where a unit under oneechelon is moved under another echelon (e.g., platoon under one companyis moved to be under another company). The problem of computingmulticast assignment reassignments for unit reorganization is to computenew address assignments to categories satisfying changes insubscriptions such that there are minimal changes in multicast groupmembership of subscribers. The minimization objective is motivated by adesire to minimize changes to existing multicast trees therebyminimizing disruptions to ongoing multicast traffic.

Additionally, one skilled in the art can adapt the technology describedherein to accommodate information categories associated with multiplemulticast addresses. In some cases, it may be more efficient to assignmultiple multicast addresses to a category, even in cases where there isno varying QoS requirement for the category. The technology can beexpanded to consider solutions where an information category is assignedto multiple addresses while considering the additional wastage due tothe multiple transmissions.

Furthermore, one skilled in the art can adapt the technology describedherein to refine the bandwidth factor to capture network resourcesconsumed in each hop in the dissemination of the information categoriesin the network.

1. A method for assigning an information category to a multicast addressin a network, comprising the steps of: accessing a plurality ofinformation categories, a plurality of subscribers, and a plurality ofmulticast addresses associated with the network; generating a pluralityof assignment solutions, each assignment solution having a plurality ofassignments, each assignment assigning a select information category toa select multicast address, each assignment solution having a wastagepenalty; and selecting an assignment solution as a final assignmentsolution, the final assignment solution having a lower wastage penaltythan most other assignment solutions. 2.-3. (canceled)
 4. The method ofclaim 1 further comprising the steps of: accessing a plurality ofunwanted category data, each unwanted category data associated with aselect subscriber and a select information category, each unwantedcategory data indicating that the select subscriber is assigned toreceive the select information category and the select subscriber doesnot need it; and calculating the wastage penalty for each assignmentsolution as a function of the unwanted category data.
 5. (canceled) 6.The method of claim 1, further comprising the step of: associating abandwidth factor with each information category, the bandwidth factorrepresenting a weight indicative of a size of the associated informationcategory and frequency of dissemination; and wherein the calculatingstep calculates the wastage penalty for each assignment solution as afunction of the bandwidth factor for each information category. 7.-8.(canceled)
 9. A system for assigning information categories to multicastaddresses in a network, comprising: a plurality of subscribers; aplurality of multicast addresses, each multicast address associated withone or more subscribers; a plurality of information categories, eachinformation category associated with one or more subscribers and one ormore multicast addresses; a plurality of assignments, each assignmentassigning a select information category to a select multicast address; aplurality of assignment solutions, each assignment solution including anassignment for each information category; and a planner, comprising: anassignment procedure including instructions for generating the pluralityof assignment solutions and selecting a final assignment solution, eachassignment solution associated with a wastage penalty, the finalassignment solution having a lower wastage penalty than most otherassignment solutions. 10.-11. (canceled)
 12. The system of claim 9,wherein the wastage penalty is a function of assignments made to anysubscriber not interested in an information category that is assigned tothe subscriber.
 13. (canceled)
 14. A computer program product comprisinga computer readable storage medium having instructions for: accessing aset of k subscribers, S={s₁, . . . ,s_(k)}, a set of m informationcategories C={c₁, . . . ,c_(m)}, a set of n addresses, A={a₁, . . .,a_(n)}, a set of m bandwidth factors, B={b₁, . . . ,b_(m)}, eachbandwidth factor associated with a select infounation category, eachbandwidth factor representing a weight associated with disseminatingmessages in the select information category; generating a plurality ofassignment solutions, each assignment solution, M(C,A), having a set ofassignments, where each assignment, M(c,a), assigns information categoryc to an address a, each assignment solution having one or more wastedassignments, each wasted assignment representing subscriber s assignedto receive information category c for which subscriber s does not need,each assignment solution having a wastage penalty, the wastage penaltyis a function of the wasted assignments and the set of bandwidthfactors; and selecting a select one of the assignment solutions as afinal assignment solution based on the wastage penalty of the finalassignment solution. 15.-19. (canceled)